#!/usr/bin/python
import random,\
    sys

MIN_VERTICES = 3
MAX_VERTICES = 50
INSTANCIAS  = 2000
MAX_EJE_PESO = 5
kmax = 1
disperso = False
if(len(sys.argv) > 2 and sys.argv[2] == "-e"):
    disperso = True
    sys.stderr.write("Generando grafos dispersos\n")
elif(len(sys.argv) > 1):
    sys.stderr.write("Generando grafos densos\n")
else:
    sys.stderr.write("USO: %s {k} [-e]\n\tk Cantidad de particiones\n\t-e Genera grafos dispersos, de lo contrario genera densos.\n" % sys.argv[0])
    exit()

kmax = int(sys.argv[1])
sys.stderr.write("KMAX = %d\n" % kmax)

for i in range(INSTANCIAS):
    
    #cantidad de vertices.
    v = random.randint(MIN_VERTICES,MAX_VERTICES)
    #cantidad de ejes.

    #grafo esparso
    if(disperso):
        w =  random.randint(v, max(int( ( (v*(v-1))* 0.5 ) * 0.5),v) );
    #grafo denso
    else:
        w =  random.randint(max(int( ( (v*(v-1))* 0.5 ) * 0.5),v),max(int( ( (v*(v-1))* 0.5 )),v) ) ;


    #cantidad de particiones.
    #k = random.randint(2,int(v/2)+1)
    #k = int(v/2)+1
    k= random.randint(2,kmax)
    

    ejes = set([])
    pesos = dict([])

    for t in range(w):
        (v1, v2) = (random.randint(0,v-1),random.randint(0,v-1))
        while v1 == v2 or (v1,v2)  in ejes or (v2,v1)  in ejes  :
            (v1, v2) = (random.randint(0,v-1),random.randint(0,v-1))
        ejes.add((v1, v2))    
        pesos["%d-%d" % (v1, v2) ] = random.randint(1,MAX_EJE_PESO)    
    print "%s %s %s" % (v,w,k)     
    for (e1,e2) in ejes:
        print "%s %s %s" % (e1,e2,pesos["%d-%d" % (e1, e2)])
print "0"
